#ifndef ANALYZER_H
#define ANALYZER_H

#include <head/g_pch.h>
#include <support/odbc_helper.h>
#include "m_fhs.h"

class Analyzer : public QObject
{
    Q_OBJECT
public:
    explicit Analyzer(QObject *parent = nullptr);

    void onConnect();
    int getStock(const QString &invCode);

    void onReset_DL(const QString &beginDate);
    void onAnalyze_DL(const QString &beginDate);
    bool itemAnalyze_DL(const QString &dlid);
    bool cellAnalyze_DL(const QString &invCode, int delivery);
    bool tagUp_DL(const QString &dlid);
    void onTest_DL(const QString &cDLCode);

    void onReset_EB(const QString &beginDate);
    void onAnalyze_EB(const QString &beginDate);
    bool itemAnalyze_EB(const QString &autoID);
    bool cellAnalyze_EB(const QString &invCode, int delivery);
    bool tagUp_EB(const QString &autoID);
    void onTest_EB(const QString &cTradeCode);

signals:
    void connected(bool flag);
    void analyzing(bool flag);
    void appendMessage(const QString &message);

private:
    QSqlDatabase odbc;

    bool isTest;
    QHash<QString,int> stockCache;   //现存量缓存
};

#endif // ANALYZER_H
